package jp.co.kayo.gae.takidashibot.controller.tweetcheck;

import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

import jp.co.kayo.gae.takidashibot.service.TweetCheck;
import jp.co.kayo.gae.takidashibot.service.TwitterSerivce;
import jp.co.kayo.gae.takidashibot.utils.TwitterClient;

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;
import org.slim3.memcache.Memcache;

import twitter4j.ResponseList;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;

/***
 * 炊き出したんへのツイートのチェック
 * この処理は炊き出したんへのメッセージに対する処理です。
 * 住所をいわれたら近隣の炊き出し情報を返答します。
 * 返事は返事専用のアカウントををローテーションしています。
 * 
 * @author yokmama
 *
 */
public class IndexController extends Controller {
    public static final Logger log = Logger.getLogger(IndexController.class.getName());
    
    private static final String ACCOUNT_SWFLG = "ACCOUNT_SWFLG";
    TweetCheck service = new TweetCheck();

    @Override
    public Navigation run() throws Exception {
        try {
            Long switch_flag = (Long)Memcache.get(ACCOUNT_SWFLG);
            if(switch_flag == null){
                switch_flag = new Long(0);
                Memcache.put(ACCOUNT_SWFLG, switch_flag);
            }
            else{
                switch_flag  = new Long(switch_flag.longValue()+1);
                Memcache.put(ACCOUNT_SWFLG, switch_flag);
            }
            int swflg = (int)((switch_flag)%2);
            
            //炊き出したんのメインアカウント
            TwitterClient twitter0 = service.getTwitter(-1);
            //炊き出したんの返事アカウント
            TwitterClient twitter1 = service.getTwitter(swflg);
            
            //bot0
            service.autoSay(twitter0, twitter1);
            /*if(!service.autoSay(twitter0, twitter1)){
                //bot1
                service.autoSay(twitter1, twitter1);
            }*/
        } catch (TwitterException e) {
            log.log(Level.WARNING, "run", e);
        }
        
        return null;
    }
}
